﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace RAMED
{
  public partial class PV : Form
    {


      public BindingList<Beneficaire> bénéficiairesPV = new BindingList<Beneficaire>();

        public List<Page> pagesPV = new List<Page>();

               public PV()
        {
            InitializeComponent();
            RAMEDEntities1 context = SingletonContext.GetContext();
            comboBoxannexe.DataSource = context.Annexe_administratif;
            comboBoxannexe.DisplayMember = "nom_annexe_administratif";
            remplirDataGridView();
        }

     
        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void textBox6_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (ValidateChildren(ValidationConstraints.Enabled))
            {


                int  nmb_pauvres = utitlitaire.CasterString(txtperssonepauvre.Text);
                int nmb_vulnerables = utitlitaire.CasterString(txtpersonnevulnérabilité.Text);
                int nmb_acceptes  = utitlitaire.CasterString(txtacceptation.Text);
                if(nmb_pauvres+ nmb_vulnerables != nmb_acceptes)
                {
                    NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                    nm.Show(this, "le nombre d'acceptation des dossiers doit être égale le nombre de personnes en pauvre + le nombre de personnes en vulnérabilités", Color.Red, 6000);
                    return;
                }
                RAMEDEntities1 context = SingletonContext.GetContext();
                Pv pvajoute = new Pv();
                pvajoute.nombre_de_dossier = utitlitaire.CasterString(txtnombre.Text);
                pvajoute.date_pv = dateTimePickerdatefin.Value;
                pvajoute.nombre_de_personne_sont_en_pauvre = utitlitaire.CasterString(txtperssonepauvre.Text);
                pvajoute.nombre_de_personne_sont_en_vulnérabilité = utitlitaire.CasterString(txtpersonnevulnérabilité.Text);
                pvajoute.nombre_acceptaion_de_dossie = utitlitaire.CasterString(txtacceptation.Text);
                pvajoute.id_annexe_administratif = ((Annexe_administratif)comboBoxannexe.SelectedValue).id_annexe_administratif;

               

                foreach (Beneficaire benf in bénéficiairesPV)
                    pvajoute.Beneficaires.Add(benf);

                foreach (Page page in pagesPV)
                    pvajoute.Pages.Add(page);

                context.Pvs.AddObject(pvajoute);
                context.SaveChanges();


                this.Dispose();
            }
        }

        private void Ajouter_Click(object sender, EventArgs e)
        {

            Bénéficiaire benf = new Bénéficiaire();
            benf.pv = this;
            benf.Show();

        }

        private void PV_Load(object sender, EventArgs e)
        {

        }

        private void label3_Click_1(object sender, EventArgs e)
        {

        }

    




        public void mettreAjourFormGridView()
        {
            beneficiairesGridView.DataSource = null;
            remplirDataGridView();
            beneficiairesGridView.Update();
            beneficiairesGridView.Refresh();
        }

       

        private void btnrecherche_Click(object sender, EventArgs e)
        {

            RechercheForm rech = new RechercheForm();
            rech.Show();
        }

        private void buttonajouterdemande_Click(object sender, EventArgs e)
        {
            Demandes_litigieusesForm demande = new Demandes_litigieusesForm();
            demande.Show();
        }

        private void btndossier_Click(object sender, EventArgs e)
        {
            Dossier_incompletForm doss = new Dossier_incompletForm();
            doss.Show();
        }

        private void btnrechercherdossier_Click(object sender, EventArgs e)
        {
            RechercheDossierFormcs dossier = new RechercheDossierFormcs();
            dossier.Show();
        }

        private void btnrecherchedemande_Click(object sender, EventArgs e)
        {
            RechercheDemandeForm demande = new RechercheDemandeForm();
            demande.Show();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            RetraitForm ret = new RetraitForm();
            ret.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void btnajoutecorr_Click(object sender, EventArgs e)
        {
            DemandeCorrectionForm domandecorr = new DemandeCorrectionForm();
            domandecorr.Show();
        }

        private void button11_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click_1(object sender, EventArgs e)
        {

        }

       
        private void txtperssonepauvre_Validating(object sender, CancelEventArgs e)
        {
                 utitlitaire.ValiderNombre("Saisissez un nombre valide", txtperssonepauvre, e, errorProvider1);
        }

        private void txtpersonnevulnérabilité_Validating(object sender, CancelEventArgs e)
        {
            utitlitaire.ValiderNombre("Saisissez un nombre valide", txtpersonnevulnérabilité, e, errorProvider1);
        }

        private void txtacceptation_Validating(object sender, CancelEventArgs e)
        {
                 utitlitaire.ValiderNombre("Saisissez un nombre valide", txtacceptation, e, errorProvider1);
        }

        private void button2_Click_2(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnbene_Click(object sender, EventArgs e)
        {
            Bénéficiaire ben = new Bénéficiaire();
            ben.pv = this;
            ben.Show();
        }


         private void remplirDataGridView()
      {
             beneficiairesGridView.AutoGenerateColumns = false;
             beneficiairesGridView.ColumnCount = 6;
             beneficiairesGridView.Columns[0].HeaderText = "Nom";
             beneficiairesGridView.Columns[0].DataPropertyName = "nom_beneficaire";

             beneficiairesGridView.Columns[1].HeaderText = "Prénom";
             beneficiairesGridView.Columns[1].DataPropertyName = "prenom_beneficaire";

             beneficiairesGridView.Columns[2].HeaderText = "CIN";
             beneficiairesGridView.Columns[2].DataPropertyName = "CIN_beneficaire";

             beneficiairesGridView.Columns[3].HeaderText = "Adresse";
             beneficiairesGridView.Columns[3].DataPropertyName = "adresse_beneficaire";

             beneficiairesGridView.Columns[4].HeaderText = "Type";
             beneficiairesGridView.Columns[4].DataPropertyName = "type_beneficaire";

             beneficiairesGridView.Columns[5].HeaderText = "Centre de santé";
             beneficiairesGridView.Columns[5].DataPropertyName = "Centre_sante";


             beneficiairesGridView.DataSource = bénéficiairesPV;
      }

         private void ajouterImageButton_Click(object sender, EventArgs e)
         {
             ImageViewer imageViewer = new ImageViewer();
             imageViewer.pv = this;
             imageViewer.Show();



         }

         public Image image { get; set; }

         private void txtperssonepauvre_TextChanged(object sender, EventArgs e)
         {

         }

         private void Button21_Click(object sender, EventArgs e)
         {
             this.WindowState = FormWindowState.Minimized;
         }

         private void buttonModifierBene_Click(object sender, EventArgs e)
         {

             if (beneficiairesGridView.CurrentRow == null)
             {
                 NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                 nm.Show(this, "Veuillez sélectionner un bébéficiaire pour le modifier", Color.Red, 3000);
             }
             else
             {
                 ModifierBeneficiaireAjoutPV mbf = new ModifierBeneficiaireAjoutPV();

                 Beneficaire b = new Beneficaire();
                 b = ((Beneficaire)beneficiairesGridView.CurrentRow.DataBoundItem);

                 mbf.B = b;
                 mbf.InitialiserChamps();
                 mbf.pvForm = this;
                 mbf.Show();
             }
         }

         private void beneficiairesGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
         {

         }

         private void beneficiairesGridView_RowEnter(object sender, DataGridViewCellEventArgs e)
         {

         }

         private void beneficiairesGridView_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
         {

         }

         private void txtpersonnevulnérabilité_TextChanged(object sender, EventArgs e)
         {

         }

         private void txtnombre_TextChanged(object sender, EventArgs e)
         {

         }

         private void txtnombre_Validating(object sender, CancelEventArgs e)
         {
             utitlitaire.ValiderNombre("Saisissez un nombre valide", txtnombre, e, errorProvider1);
         }

         


    }
}
